<?php
class Dispatcher
{
	/*
	 * @TODO
	* Problem: Was passiert, wenn f�r deine bestimmte Uhrzeit mehrere Feeds generiert werden müssen?
	* Wie bekommt man es hin, dass Generierungsprozesse auch parallel laufen können?
	* // Evtl klappt das hiermit: ZendX_Console_Process_Unix
	* Ich denke dabei an execution_timeout auf PHP Seite und row-level bzw. Table-lock bei MYSQL
	*/
	public function doWork()
	{
		$oScheduler = new Scheduler();
		$aFeeds = $oScheduler->getJobsToDo();
	
		/*
		 * Falls die Feeds nicht parallel erzeugt werden können oder
		* wir uns gegen die parallele Generierung entscheiden sollen die die Feeds anhand ihrer Priorität sortiert werden
		* Es soll möglich sein, Feeds die die gleiche Startzeit eingetragen haben, untereinander zu priorisieren.
		*
		*/
		sort($aFeeds);
		
		$oJobHandler = new Jobhandler();
		
		// Fuer den Fall das die Feeds nacheinander abgearbeitet werden
		foreach ($aFeeds as $oFeed)
		{
			$oJobList = new Joblist($oFeed->getFeedId());
			
			$aJobs = $oJobList->getJobs();
			
			foreach ($aJobs as $oJob)
			{
				/* @var $oJob Job */
				$oJobHandler->handleAction($oJob);
			}
		}
	}
}